home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 2, No. 03 (1982-11)(Softdisk)(Side B).zip / Softdisk Magazette Volume 2, No. 03 (1982-11)(Softdisk)(Side B).do / FIGURE.DRAWER.bas < prev    next >
BASIC Source File  |  1996-12-24  |  5KB  |  120 lines

  1. 5  TEXT : HOME 
  2. 6  GOSUB 1400
  3. 8  HOME 
  4. 10  GOSUB 3000
  5. 50  HGR 
  6. 60  HOME : VTAB 22: PRINT "DO YOU WANT TO USE A PREVIOUSLY-SAVED   DRAWING? ": INPUT G$
  7. 70  IF  LEFT$(G$,1) = "Y"  THEN 11500
  8. 80  IF  LEFT$(G$,1) < >"N"  THEN 60
  9. 90  GOTO 102
  10. 100  CLEAR 
  11. 101 SP = 1
  12. 102  ONERR  GOTO 1150
  13. 400  ONERR  GOTO 401
  14. 401  PRINT : PRINT : INPUT "ENTER X COORDINATE (0 TO 279)         ";X5
  15. 409  ONERR  GOTO 410
  16. 410  INPUT "ENTER Y COORDINATE (0 TO 159)    ";X6
  17. 425  INPUT "DO YOU WANT CIRCLES(C) OR SPIRALS(S)  ";AA$
  18. 430  IF AA$ = "S"  THEN 2000
  19. 440  IF AA$ < >"C"  THEN 100
  20. 490  PRINT : PRINT : IF SP = 0  THEN  SPEED= 150
  21. 500  PRINT "(A SIZE OF .2 IS ABOUT THE SMALLEST AND  A SIZE OF 7.8 WILL JUST FIT FROM TOP TO BOTTOM)"
  22. 505  INPUT "ENTER SIZE --- (FROM .2 TO 20) ";AA
  23. 510  IF AA >20  THEN  VTAB 22: PRINT "TOO LARGE": GOTO 500
  24. 540  PRINT 
  25. 550  INPUT "CIRCLE = 1   ARCH = 2   DIP =3          RIGHT SEMI-CIRCLE = 4                   LEFT SEMI-CIRCLE = 5 ";BB
  26. 570  PRINT : PRINT : PRINT "DO YOU WANT:": PRINT "   DOTS (D) ": INPUT "   SOLID LINES (L) OR FILLED-IN (F) ";DO$
  27. 575  IF DO$ = "L"  THEN LL = 1
  28. 578  IF DO$ = "F"  THEN FI = 1:FL = 1
  29. 580  HCOLOR= 3
  30. 585  SPEED= 255:SP = 1
  31. 590  ONERR  GOTO 11000
  32. 600  ON BB GOTO 700,800,850,900,950
  33. 700  FOR A = 0 TO 360  STEP ( INT(8/AA) +1): GOTO 1000
  34. 800  FOR A = 0 TO 180  STEP 4: GOTO 1000
  35. 850  FOR A = 180 TO 360  STEP 4: GOTO 1000
  36. 900  FOR A = 90 TO 270  STEP 4: GOTO 1000
  37. 950  FOR A = 270 TO 450  STEP 4
  38. 1000  IF FI = 1  THEN 1200
  39. 1005 B = A/57.3:R = 10 *AA:X = R * COS(B):Y = R * SIN(B):XX = X *1.18 +X5:YY = X6 -Y
  40. 1010  IF XX >280  THEN XX = 280: GOTO 1060
  41. 1020  IF XX <1  THEN XX = 1: GOTO 1060
  42. 1030  IF YY >160  THEN YY = 160: GOTO 1060
  43. 1040  IF YY <1  THEN YY = 1: GOTO 1060
  44. 1045  IF LL = 1  THEN 1070
  45. 1050  HPLOT XX,YY:L2 = 1
  46. 1060 Y9 = YY:X9 = XX: NEXT A
  47. 1070  IF L2 = 0  THEN 1050
  48. 1080  HPLOT X9,Y9 TO XX,YY
  49. 1095  GOTO 1060
  50. 1100  GOTO 11000
  51. 1150  HOME : VTAB 22: PRINT "ILLEGAL QUANTITIES  ..... TRY AGAIN ": FOR I = 1 TO 500: GOTO 100
  52. 1200 B = A/57.3:R = 10 *AA:X = R * COS(B):Y = R * SIN(B):XX = X *1.18 +X5:YY = X6 -Y
  53. 1220  IF XX >280  THEN XX = 280: GOTO 1280
  54. 1230  IF XX <1  THEN XX = 1: GOTO 1280
  55. 1240  IF YY >160  THEN YY = 160: GOTO 1280
  56. 1250  IF YY <1  THEN YY = 1: GOTO 1280
  57. 1260  IF FL = 1  THEN 1290
  58. 1270  HPLOT XX,YY:L2 = 1
  59. 1275 Y9 = YY:X9 = XX
  60. 1280  NEXT A
  61. 1290  IF L2 = 0  THEN 1270
  62. 1300  HPLOT X9,Y9 TO XX,YY
  63. 1310  GOTO 1280
  64. 1400  VTAB 5: FOR I = 1 TO 15: PRINT "*";: HTAB 38: PRINT "*": NEXT I
  65. 1410  VTAB 5: FOR I = 2 TO 37: HTAB I: PRINT "*";: NEXT I
  66. 1420  VTAB 19: FOR I = 2 TO 37: HTAB I: PRINT "*";: NEXT I
  67. 1430  VTAB 7: HTAB 7: PRINT "F I G U R E    D R A W E R": VTAB 9: HTAB 5: PRINT "BY JACK WILCOX AND PAUL WILCOX"
  68. 1440  VTAB 12: HTAB 2: PRINT " YOU CAN DRAW CIRCLES, SEMI-CIRCLES,": VTAB 14: HTAB 3: PRINT "SPIRALS OR ALMOST ANY STRAIGHT": VTAB 16: HTAB 3: PRINT "SIDED FIGURE.  THE CIRCLES CAN BE": VTAB 18: HTAB 3: PRINT "EITHER EMPTY OR FILLED-IN."
  69. 1450  VTAB 23: INPUT "PRESS RETURN TO BEGIN ";G$
  70. 1460  IF G$ = ""  THEN  RETURN 
  71. 1470  GOTO 1450
  72. 1500  HCOLOR= 0
  73. 1510  IF AA$ = "C"  THEN 600
  74. 1520  IF AA$ = "S"  THEN 2035
  75. 1550  GOTO 11000
  76. 2000  PRINT : PRINT : PRINT : PRINT : IF SP = 0  THEN  SPEED= 150
  77. 2001  PRINT "YOU CAN DRAW SPIRALS OR ALMOST ANY      STRAIGHT-SIDED FIGURE, DEPENDING ON YOURANSWER TO THE NEXT QUESTION."
  78. 2002  PRINT "     (TRY ANYTHING FROM 1 TO 280)"
  79. 2003  SPEED= 255
  80. 2004  FOR I = 1 TO 4000: NEXT 
  81. 2005  INPUT "SEPARATION OF POINTS IN DEGREES? ";D:D = D/57.29578
  82. 2010  PRINT : INPUT "DO YOU WANT DOTS (D) OR LINES (L): ";S$
  83. 2014  IF S$ < >"L"  AND S$ < >"D"  THEN 2010
  84. 2020  PRINT : INPUT "RELATIVE  LENGTHS OF X AND Y  (X,Y)";A,B
  85. 2025  ONERR  GOTO 11000
  86. 2030  HCOLOR= 3
  87. 2035  HPLOT X5,X6
  88. 2040  FOR R = 0 TO 200  STEP D
  89. 2050 X = R * COS(R):Y = R * SIN(R):X = X *A:Y = Y *B
  90. 2060 X = X +X5:Y = Y +X6: IF X <0  OR X >280  OR Y <0  OR Y >160  THEN 11000
  91. 2070  IF S$ = "D" GOTO 2090
  92. 2080  HPLOT  TO X,Y: GOTO 2100
  93. 2090  HPLOT X,Y
  94. 2100  NEXT R
  95. 2110  GOTO 11000
  96. 2120  END 
  97. 3000  HGR : PRINT  CHR$(4);"BLOAD DRAWER.DEMS"
  98. 3010  HOME : VTAB 22: PRINT "THIS IS A DEMONSTRATION OF SOME OF THE  FIGURES YOU CAN DRAW."
  99. 3020  INPUT "PRESS 'RETURN' TO CONTINUE";G$: RETURN 
  100. 3100  HGR : PRINT  CHR$(4);"BLOAD DRAWER.DEMS"
  101. 11000  PRINT : PRINT : INPUT "IS THAT WHAT YOU WANT?                  CONTINUE(C)    ERASE(E)";A$
  102. 11002  IF  LEFT$(A$,1) = "E"  THEN 1500
  103. 11003  IF  LEFT$(A$,1) = "C"  THEN  HCOLOR= 3: GOTO 11005
  104. 11004  GOTO 11000
  105. 11005  PRINT : PRINT : INPUT "DO YOU WANT ANOTHER FIGURE? ";A$: IF  LEFT$(A$,1) = "Y"  THEN L2 = 0:LL = 0: GOTO 100
  106. 11010  INPUT "DO YOU WANT TO SAVE THIS TO DISK? ";G$: IF  LEFT$(G$,1) = "Y"  THEN 12000
  107. 11020  IF  LEFT$(G$,1) < >"N"  THEN 11010
  108. 11030  GOTO 12020
  109. 11500  INPUT "NAME OF PICTURE? ";NA$: GOTO 11505
  110. 11505  ONERR  GOTO 11507
  111. 11506  GOTO 11510
  112. 11507  TEXT : PRINT  CHR$(4);"CATALOG": GOTO 11500
  113. 11510  HGR : PRINT  CHR$(4);"BLOAD";NA$
  114. 11520  GOTO 100
  115. 12000  PRINT : PRINT : INPUT "PICTURE NAME ";NA$
  116. 12010  PRINT  CHR$(4);"BSAVE";NA$;",A$2000,L$1FF8"
  117. 12020  INPUT "CONTINUE (C) OR END (E)?";A$
  118. 12030  IF  LEFT$(A$,1) = "C"  THEN 100
  119. 12040  IF  LEFT$(A$,1) < >"E"  THEN 12020
  120. 12050  TEXT : HOME : END